<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        class Person{
            // 定义在Peron.prototype.say
            say(){
                console.log('say this: ', this)
            }
            // hello是定义在new出来的实例对象身上的，每个实例对象身上都有自己的hello方法
            // 赋值语句直接定义的属性，相当于是在构造函数中定义的。
            hello = ()=>{
                console.log('hello this:', this)
            }

            // constructor(){

            //     this.hello = ()=>{
            //         console.log('hello this:', this)
            //     }
            // }
        }

        const p1 = new Person()

        const p2 = new Person()

        console.log(p1.say === p2.say) // true

        console.log(p1.hello === p2.hello) // false


        const obj = {
            name:'yuonly',
            fn:p1.say,
            ff:p1.hello
        }

        p1.say() // Perons类 p1的实例对象
        obj.fn() // obj
        // 说明类中定义的普通方法，this指向跟.前面是谁有关

        p1.hello()
        obj.ff()
    </script>
</body>
</html>